<?php
@session_start();
header("Content-Type: text/html;charset=utf-8");

include_once '../db_conecta_adodb.inc.php';
include_once '../function.inc.php';
include_once '../paginador.php';
include("../lang/es.php");
$languaje='es';


$action=$_GET['action'];
/*$return = array('html' => '',
				'msg' => '',
				'type' => '');*/

switch ($action){
	case 'getReservas':

		if (isset($_GET['filtros']))
			$filtros=$_GET['filtros'];

		$where1='';
		$where2='';

		$rs=sql("SELECT b.*,c.chr_name_es 
				FROM u172676809_fcac.T_BOOKS b,u172676809_fcac.T_COUNTRIES c 
				where b.FK_ID_COUNTRY=c.id_country 
				and DT_CHECK_OUT < sysdate() /*".$where1." */
				UNION
				SELECT b.*,c.chr_name_es 
				FROM u172676809_fcac.T_BOOKS b,u172676809_fcac.T_COUNTRIES c 
				where b.FK_ID_COUNTRY=c.id_country 
				and DT_CHECK_OUT >= sysdate() /*".$where2." */
				order by dt_check_in desc","");

		$return=array();
		
		while($row=siguiente($rs)){
			//Obtengo el estado de la reserva
			$estado=$archivo=$title='';
			$array=getEstado($row->DT_CHECK_OUT,$row->INT_CANCEL,$row->DT_CANCEL,$row->DT_EXPIRATION_DATE,$row->INT_DEPOSIT,$row->INT_TOT_PAY);
			$estado=$array['estado'];
			$archivo=$array['archivo'];
			$title=$array['title'];

			$filtrada=0;
			for($i=0; $i<strlen($filtros); $i++){
		  		switch ($filtros[$i]){
		  			case 'c': 
		  				if ($estado=='cancelada')
		  					$filtrada=1;
		  				break;
		  			case 'v':
		  				if ($estado=='vencida')
		  					$filtrada=1;
		  				break;
		  			case 'f':
		  				if ($estado=='finalizada')
		  					$filtrada=1;
		  				break;
		  			case 'd':
		  				if ($estado=='depositada')
		  					$filtrada=1;
		  				break;
		  			case 'p':
		  				if ($estado=='pendiente')
		  					$filtrada=1;
		  				break;
		  			case 'l':
		  				if ($estado=='liquidada')
		  					$filtrada=1;
		  				break;
		  		}
        	}
			if ($filtrada==0){
				$reserva=array(	"DT_RowId"=>$row->INT_ID_BOOK,
								"Estado"=>'<img class="tooltip tooltipstered" src="../img/panel/'.$archivo.'.png" title="'.$title.'"/>',
								"Entrada"=>date(dateFromDBtoPick($row->DT_CHECK_IN,'es')),
								"Salida"=>date(dateFromDBtoPick($row->DT_CHECK_OUT,'es')),
								"Noches"=>$row->INT_DAYS,
								"Nombre"=>$row->CHR_NAME.' '.$row->CHR_LAST_NAME,
								"Pais"=>$row->CHR_NAME_ES,
								"EMail"=>$row->CHR_EMAIL,
								"Codigo"=>$row->CHR_BOOK_CODE
								);
				array_push($return, $reserva);
			}
		}


		break;

	case 'validateDeposit':
		$idBook=$_GET['id'];
		$deposit=$_GET['inp-Deposit'];
		$currency=$_GET['inpCurrDeposit'];

		//Verifico el valor del deposito
		if (!validNumField($deposit)){
			$return = array('html' => '',
							 'msg' => 'El Valor del Dep&oacute;sito no es correcto',
							 'type' => 'e');
			break;
		}

		$deposit=(float)$deposit;
		//var_dump('Deposito: '.$deposit);

		if ($deposit <= 0 || !validFloatField($deposit,3,2)) {
			$return = array('html' => '',
							 'msg' => 'El Valor del Dep&oacute;sito debe ser Decimal mayor a 0 de 3 caracteres enteros y 2 caracteres decimales como m&aacute;ximo',
							 'type' => 'e');
			break;
		}

		//busco la moneda en la que se realizo la reserva
		$rs=sql("SELECT B.`ID_CURRENCY`,B.`DCM_TOTAL`
                FROM `u172676809_fcac`.`T_BOOKS` B WHERE B.`INT_ID_BOOK`=?",array($idBook));
		$reg=siguiente($rs);
		//comparo la moneda de la reserva y la del deposito
		$total=$reg->DCM_TOTAL;
		if ($reg->ID_CURRENCY != $currency){
			//Si las monedas son diferentes, llevo todo a moneda por defecto y comparo
			//Valores de la reserva
			$cambio=getTipoCambio($reg->ID_CURRENCY);
			if ($cambio != 0){
				//Si el cambio es distinto a cero es porque no se trata de la moneda por defecto
				$total=round(floatval($total/$cambio),2);
			}

			//Valores del Deposito
			$cambioDeposito=getTipoCambio($currency);
			if ($cambioDeposito != 0){
				//Si el cambio es distinto a cero es porque no se trata de la moneda por defecto
				$deposit=round(floatval($deposit/$cambioDeposito),2);
			}
		}

		//Obtengo el porcentaje minimo de deposito
		$minDeposito = calcMinDeposit($total);
		/*var_dump('Cambio Reserva: '.$cambio);
		var_dump('Cambio Deposito: '.$cambioDeposito);
		var_dump('Deposito: '.$deposit);
		var_dump('Minimo: '.$minDeposito);*/
		

		//Verifico si el valor depositado es menor
		if ($deposit < $minDeposito){
			$return = array('html' => "<script>$('#modalDepositMin').modal('show');</script>",
							 'msg' => '',
							 'type' => '');
			break;
		}

		//Verifico que el valor del deposito no supere el del total de la reserva
		if ($deposit > $total){
			$return = array('html' => "",
							 'msg' => 'El valor del Dep&oacute;sito no puede superar el Total de la Reserva',
							 'type' => 'e');
			break;
		}

		$return = array('html' => '<script>g("ajax_tabla_reservas.php?"+a("setDeposit")+c("id","'.$idBook.'")+v("inp-Deposit")+v("inpCurrDeposit"), "div-result" , "div-msg","div-img" ,true);</script>',
							 'msg' => '',
							 'type' => '');
		break;
		
	case 'setDeposit':
		$idBook=$_GET['id'];
		$deposit=$_GET['inp-Deposit'];
		$currency=$_GET['inpCurrDeposit'];

		//Verifico el valor del deposito
		if (!validNumField($deposit)){
			$return = array('html' => '',
							 'msg' => 'El Valor del Dep&oacute;sito no es correcto',
							 'type' => 'e');
			break;
		}
		$deposit=round(floatval($deposit),2);
		//var_dump($deposit);
		//$db->debug=true;
		if ($deposit==0)
			$depositado=0;
		else
			$depositado=1;

		//$db->debug=true;

		$rs = sql("UPDATE `u172676809_fcac`.`T_BOOKS` SET INT_DEPOSIT=?,DCM_DEPOSIT_VALUE=?,ID_DEPOSIT_CURRENCY=?, DT_DEPOSIT_DATE=sysdate() WHERE INT_ID_BOOK=?",array($depositado,$deposit,$currency,$idBook));

		$return = array('html' => "<script>$('#adm-reserva').load('./adm_reserva.php?id='+$('#id').val());</script>",
						'msg' => 'El Dep&oacute;sito se ha registrado con &eacute;xito',
						'type' => 'o');
		break;

	case 'setSaldo':
		$idBook=$_GET['id'];
		$cancel=(int)$_GET['cancel'];

		//var_dump($cancel);
		//$db->debug=true;

		if ($cancel==0){
			$rs = sql("UPDATE `u172676809_fcac`.`T_BOOKS` SET INT_TOT_PAY=?,DT_TOT_PAY=sysdate(),INT_DEPOSIT=? WHERE INT_ID_BOOK=?",array(1,1,$idBook));
		
			$return = array('html' => "<script>$('#adm-reserva').load('./adm_reserva.php?id='+$('#id').val()).delay(10000);</script>",
						'msg' => 'El Pago del Saldo se ha Registrado con &eacute;xito',
						'type' => 'o');
			break;
		}
		else{
			$rs = sql("UPDATE `u172676809_fcac`.`T_BOOKS` SET INT_TOT_PAY=?,DT_TOT_PAY=null WHERE INT_ID_BOOK=?",array(0,$idBook));
		
			$return = array('html' => "<script>$('#adm-reserva').load('./adm_reserva.php?id='+$('#id').val()).delay(10000);</script>",
						'msg' => 'El Pago del Saldo se ha Cancelado con &eacute;xito',
						'type' => 'o');
		}

		break;

	case 'setCancel':
		$idBook=$_GET['id'];
		$motivoCancel=$_GET['inp-motivo-cancel'];

		if ($motivoCancel==''){
			$return = array('html' => "",
						'msg' => 'Debe ingresar los motivos por los que realiza la cancelaci&oacute;n',
						'type' => 'e');
			break;
		}

		$rs = sql("UPDATE `u172676809_fcac`.`T_BOOKS` SET INT_CANCEL=?,DT_CANCEL=sysdate() WHERE INT_ID_BOOK=?",array(1,$idBook));
		
		$return = array('html' => "<script>$('#adm-reserva').load('./adm_reserva.php?id='+$('#id').val()).delay(10000);</script>",
						'msg' => 'La Reserva se ha Cancelado con &eacute;xito',
						'type' => 'o');
		break;

	case 'setObservaciones':
		$idBook=$_GET['id'];
		$observaciones=$_GET['inp-observaciones'];

		if ($observaciones==''){
			$return = array('html' => "",
						'msg' => 'Debe ingresar las Observaciones',
						'type' => 'e');
			break;
		}

		$rs = sql("UPDATE `u172676809_fcac`.`T_BOOKS` SET CHR_COMMENTS=? WHERE INT_ID_BOOK=?",array($observaciones,$idBook));
		
		$return = array('html' => "<script>$('#adm-reserva').load('./adm_reserva.php?id='+$('#id').val()).delay(10000);</script>",
						'msg' => 'Las Observaciones se han registrado con &eacute;xito',
						'type' => 'o');
		break;

	case 'setNuevoPeriodo':
		$id=$_GET['id'];
		$desde=$_GET['desde'];
		$hasta=$_GET['hasta'];
		$precio=$_GET['precio'];

		if ($desde == '' || $hasta == '' || $precio == ''){
			$return = array('html' => "",
						'msg' => 'La Fecha Desde, Fecha Hasta y el Precio son datos obligatorios',
						'type' => 'a');
			break;
		}

		if (!validNumField($precio)){
			$return = array('html' => "",
						'msg' => 'El Precio ingresado no es correcto',
						'type' => 'a');
			break;
		}

		$desde=dateFromPickToDB($desde,'es');
		$hasta=dateFromPickToDB($hasta,'es');

		if (date($desde) < date('Y-m-d') || date($hasta) < date('Y-m-d')){
			/*var_dump(date($desde));
			var_dump(date($hasta));
			var_dump(date('d/m/Y'));*/
			$return = array('html' => "",
						'msg' => 'Los Nuevos Per&iacute;odos deben ser para fechas posteriores a la Fecha Actual',
						'type' => 'a');
			break;
		}

		if (date($desde) > date($hasta)){
			$return = array('html' => "",
						'msg' => 'La fecha Desde no puede ser mayor a la fecha Hasta',
						'type' => 'a');
			break;
		}

		//Modifico los periodos e inserto
		if (!updPricePeriod($desde,$hasta,$precio,0)){
			$return = array('html' => "",
						'msg' => 'Se produjo un error al actualizar los per&iacute;odos. Intente nuevamente',
						'type' => 'a');
			break;
		}
		
		$return = array('html' => "",
						'msg' => '¡El Per&iacute;odo se ha registrado con &eacute;xito!',
						'type' => 'o');
		break;

	case 'updPeriodoPrecio':
		$id=$_GET['id_modal'];
		$desde=$_GET['start'];
		$hasta=$_GET['end'];
		$precio=$_GET['price'];

		if ($desde == '' || $hasta == '' || $precio == ''){
			$return = array('html' => "",
						'msg' => 'La Fecha Desde, Fecha Hasta y el Precio son datos obligatorios',
						'type' => 'a');
			break;
		}

		if (!validNumField($precio)){
			$return = array('html' => "",
						'msg' => 'El Precio ingresado no es correcto',
						'type' => 'a');
			break;
		}

		$desde=dateFromPickToDB($desde,'es');
		$hasta=dateFromPickToDB($hasta,'es');

		if (date($desde) < date('Y-m-d') || date($hasta) < date('Y-m-d')){
			/*var_dump(date($desde));
			var_dump(date($hasta));
			var_dump(date('d/m/Y'));*/
			$return = array('html' => "",
						'msg' => 'Los Nuevos Per&iacute;odos deben ser para fechas posteriores a la Fecha Actual',
						'type' => 'a');
			break;
		}

		if (date($desde) > date($hasta)){
			$return = array('html' => "",
						'msg' => 'La fecha Desde no puede ser mayor a la fecha Hasta',
						'type' => 'a');
			break;
		}

		//Modifico los periodos e inserto
		if (!updPricePeriod($desde,$hasta,$precio,0)){
			$return = array('html' => "",
						'msg' => 'Se produjo un error al actualizar los per&iacute;odos. Intente nuevamente',
						'type' => 'a');
			break;
		}

		$return = array('html' => "",
						'msg' => '¡El Per&iacute;odo se ha registrado con &eacute;xito!',
						'type' => 'o');
		break;

	case 'anularPeriodo':
		$desde=$_GET['an_desde'];
		$hasta=$_GET['an_hasta'];

		if ($desde == '' || $hasta == ''){
			$return = array('html' => "",
						'msg' => 'La Fecha Desde y Fecha Hasta son datos obligatorios',
						'type' => 'a');
			break;
		}

		$desde=dateFromPickToDB($desde,'es');
		$hasta=dateFromPickToDB($hasta,'es');

		if (date($desde) < date('Y-m-d') || date($hasta) < date('Y-m-d')){
			$return = array('html' => "",
						'msg' => 'Los Nuevos Per&iacute;odos deben ser para fechas posteriores a la Fecha Actual',
						'type' => 'a');
			break;
		}

		if (date($desde) > date($hasta)){
			$return = array('html' => "",
						'msg' => 'La fecha Desde no puede ser mayor a la fecha Hasta',
						'type' => 'a');
			break;
		}

		//anulo periodos
		$fechaInicio=strtotime($desde);
		$fechaFin=strtotime($hasta);
		for($i=$fechaInicio; $i<=$fechaFin; $i+=86400){
			$rs=sql("SELECT COUNT(*) AS EXISTE FROM u172676809_fcac.T_CANCEL_DAYS WHERE DT_DATE=STR_TO_DATE(?,'%Y-%m-%d')",array(date("Y-m-d", $i)));
			$row=siguiente($rs);
			if ($row->EXISTE==0){
				sql("INSERT INTO u172676809_fcac.T_CANCEL_DAYS (DT_DATE) VALUES (STR_TO_DATE(?,'%Y-%m-%d'))",array(date("Y-m-d", $i)));
			} 
		}
		
		$return = array('html' => "",
						'msg' => '¡El Per&iacute;odo ha sido anulado con &eacute;xito!',
						'type' => 'o');
		break;

	case 'marcar_novedad':
		$id=$_GET['id'];
		$read=$_GET['read'];

		if ($read==0)
			$read=1;
		else
			$read=0;

		sql("UPDATE u172676809_fcac.T_SYS_NEWS SET INT_READ=? WHERE ID_SYS_NEWS=?",array($read,$id));

		$return = array('html' => "<script>reload()</script>",
						'msg' => '',
						'type' => '');
		break;

	case 'setObservacion':
		$observaciones=$_GET['inp-observaciones'];
		$id=$_GET['id'];

		if ($observaciones == ''){
			$return = array('html' => "",
						'msg' => 'Debe ingresar la Observaci&oacute;n',
						'type' => 'a');
			break;
		}

		sql("UPDATE u172676809_fcac.T_BOOKS SET CHR_COMMENTS=? WHERE INT_ID_BOOK=?",array($observaciones,$id));
		$return = array('html' => "",
						'msg' => 'La Observaci&oacute;n se registr&oacute; con &eacute;xito',
						'type' => 'o');
		break;

	case 'prorrogarVenc':
		$id=$_GET['id'];
		$fechaVencimiento=$_GET['inp-fecha-vencimiento'];
		$fechaVencimiento=dateFromPickToDB($fechaVencimiento,'es');
		$rs=sql("SELECT DT_CHECK_IN,DT_EXPIRATION_DATE FROM u172676809_fcac.T_BOOKS WHERE INT_ID_BOOK=?",array($id));
		$row=siguiente($rs);
		$checkIn=$row->DT_CHECK_IN;
		$expDate=date($row->DT_EXPIRATION_DATE);
		/*var_dump(date($fechaVencimiento));
		var_dump(date($checkIn));
		var_dump($expDate);*/

		if (date($fechaVencimiento) == date($expDate)){
			$return = array('html' => "",
						'msg' => 'La Fecha de Vencimiento debe ser diferente a la actual',
						'type' => 'e');
			break;
		}

		if (date($fechaVencimiento) < date($expDate) || date($fechaVencimiento) > date($checkIn)){
			$return = array('html' => "",
						'msg' => 'La Fecha de Vencimiento debe ser mayor a la Fecha de Vencimiento actual y menor que la Fecha de Entrada',
						'type' => 'e');
			break;
		}

		sql("UPDATE u172676809_fcac.T_BOOKS SET DT_EXPIRATION_DATE=? WHERE INT_ID_BOOK=?",array($fechaVencimiento,$id));
		$return = array('html' => "",
						'msg' => 'La Fecha de Vencimiento ha sido actualizada con &eacute;xito',
						'type' => 'o');
		break;

}
echo json_encode($return);
exit;